The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
For information clarity, roads, bicycle paths, transit lines, and similar features are represented on digital maps in a stylized, rather than a realistic, form. For example, the style in which a road segment is represented on a digital map can include a set of visual parameters such as the number of strokes (e.g., one for the outline and one for the fill color), per-stroke attributes such as stroke width, stroke color, etc. Thus, drawings stylized paths in near real time (e.g., using Graphics Processing Unit, or GPU, hardware) is essential for providing quality mapping applications. Without a high-performance solution to drawings stokes, a mapping application loses fluidity, and without appropriately stylized stokes, a mapping application loses aesthetics and/or clarity.
Some mapping applications are implemented in a client-server architecture where a computer or mobile device, such as a smartphone, runs a local client that is served map data from a centralized server. A map of the earth with sufficient detail for navigation requires a huge amount of data. To make this data manageable by client devices with limited resources (memory, disk space, CPU processing cycles), data is often buffered by the server and parceled out to the client as needed.
Client devices typically render scenes from a top-down vantage point or at some angle from this vantage point up to ninety degrees. As the altitude of this vantage point changes, the level of detail of the map view must change accordingly. For example, the user may wish to view continents or city blocks. To manage this wide gamut of levels of detail, servers often serve map data at discrete levels (zoom levels) corresponding to altitudes of views above the map.
As one example, a server can provide definitions of styles for rendering roads and other map features at several discrete zoom levels. In some cases, the server does not provide style definitions for every discrete zoom level in the valid range. Thus, the server may provide style definitions for roads only at discrete zoom levels N and N+2, even if a client device at some point may display a digital map at zoom level N+1. Moreover, on some devices, such as smartphones and tablet computers capable of receiving gesture input, the positioning of a virtual camera in a digital mapping application may be updated in a continuous manner or at least in a manner with much finer granularity than the discrete zoom levels at which data is served. It is therefore possible for a client device to display a digital map at zoom level 7.5 or 8.45, for example. However, it is impractical for the server to attempt to provide style data to client devices for hundreds or thousands of fractional zoom levels.